package entity

import (
    "time"
)

type Miniolog struct {
        Version      string    `json:"version"`
        Deploymentid string    `json:"deploymentid"`
        Time         time.Time `json:"time"`
        Trigger      string    `json:"trigger"`
        API          struct {
                Name            string `json:"name"`
                Bucket          string `json:"bucket"`
                Object          string `json:"object"`
                Status          string `json:"status"`
                AccessKey       string `json:"accessKey"`
                StatusCode      int    `json:"statusCode"`
                Rx              int    `json:"rx"`
                Tx              int    `json:"tx"`
                TimeToFirstByte string `json:"timeToFirstByte"`
                TimeToResponse  string `json:"timeToResponse"`
                Localhost    string    `json:"localhost,omitempty"` 
                Time         time.Time `json:"time,omitempty"`
                Remotehost      string `json:"remotehost,omitempty"`
        } `json:"api"`
        Remotehost   string `json:"remotehost"`
        RequestID    string `json:"requestID"`
        UserAgent    string `json:"userAgent"`
        RequestQuery struct {
                UploadID string `json:"uploadId"`
        } `json:"requestQuery"`
        RequestHeader struct {
                Authorization     string `json:"Authorization"`
                ContentLength     string `json:"Content-Length"`
                ContentMd5        string `json:"Content-Md5"`
                UserAgent         string `json:"User-Agent"`
                XAmzContentSha256 string `json:"X-Amz-Content-Sha256"`
                XAmzDate          string `json:"X-Amz-Date"`
        } `json:"requestHeader"`
        ResponseHeader struct {
                AcceptRanges            string `json:"Accept-Ranges"`
                CacheControl            string `json:"Cache-Control"`
                ContentLength           string `json:"Content-Length"`
                ContentSecurityPolicy   string `json:"Content-Security-Policy"`
                ContentType             string `json:"Content-Type"`
                ETag                    string `json:"ETag"`
                Server                  string `json:"Server"`
                StrictTransportSecurity string `json:"Strict-Transport-Security"`
                Vary                    string `json:"Vary"`
                XAccelBuffering         string `json:"X-Accel-Buffering"`
                XAmzRequestID           string `json:"X-Amz-Request-Id"`
                XContentTypeOptions     string `json:"X-Content-Type-Options"`
                XXSSProtection          string `json:"X-Xss-Protection"`
        } `json:"responseHeader"`
        Tags struct {
                UploadID string `json:"uploadID"`
        } `json:"tags"`
}

